 package cn.tedu.thread;
/**本类用于多线程编程实现方案2：实现Runnable接口来完成*/
public class TestTread2 {
    public static void main(String[] args) {
        //4.创建自定义类对象----目标业务类对象
        MyRunnable target = new MyRunnable();
        //5.创建多个线程对象
        /**如何以多线程的方式启动线程？需要调用start()
         * 自己没有，需要与Thread类建立练习：Thread(Runnable target)
         * 但是由于Runnable时接口，无法实例化，我们可以把接口实现类对象
         * 也就是我们自定义类的对象作为构造函数的参数传入，与Thread类建立关系*/
        Thread t1 = new Thread(target);
        Thread t2 = new Thread(target);
        Thread t3 = new Thread(target);
        Thread t4 = new Thread(target);
        t1.start();
        t2.start();
        t3.start();
        t4.start();
//        Thread t2 = new Thread(new MyRunnable());


    }
}
//1.自定义多线程类
class MyRunnable implements Runnable{

    //2.添加接口中未实现的抽象方法，用于完成业务
    @Override
    public void run() {
         //3.写业务：打印10次当前正在执行的线程名称
        for (int i = 0; i < 10; i++) {
            /**问题：自定义类与父接口Runnable中都没有获取线程名字的方法
             * 所以还需要从Thread类中找：
             * currentThread()：静态方法，获取当前正在执行的线程对象
             * getName()：非静态方法，由刚刚获取到的线程对象调用，返回当前线程对象的名字*/
            System.out.println(i+"="+Thread.currentThread().getName());
        }
    }
}